<!DOCTYPE HTML>
<html lang="en" class="sidebar-visible no-js light">
    <head>
        <!-- Book generated using mdBook -->
        <meta charset="UTF-8">
        <title>更新日志</title>
                

        <!-- Custom HTML head -->
        

        <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
        <meta name="description" content="">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <meta name="theme-color" content="#ffffff" />

                <link rel="icon" href="../favicon.svg">
                        <link rel="shortcut icon" href="../favicon.png">
                <link rel="stylesheet" href="../css/variables.css">
        <link rel="stylesheet" href="../css/general.css">
        <link rel="stylesheet" href="../css/chrome.css">
                <link rel="stylesheet" href="../css/print.css" media="print">
        
        <!-- Fonts -->
        <link rel="stylesheet" href="../FontAwesome/css/font-awesome.css">
                <link rel="stylesheet" href="../fonts/fonts.css">
        
        <!-- Highlight.js Stylesheets -->
        <link rel="stylesheet" href="../highlight.css">
        <link rel="stylesheet" href="../tomorrow-night.css">
        <link rel="stylesheet" href="../ayu-highlight.css">

        <!-- Custom theme stylesheets -->
        
            </head>
    <body>
        <!-- Provide site root to javascript -->
        <script type="text/javascript">
            var path_to_root = "../";
            var default_theme = window.matchMedia("(prefers-color-scheme: dark)").matches ? "navy" : "light";
        </script>

        <!-- Work around some values being stored in localStorage wrapped in quotes -->
        <script type="text/javascript">
            try {
                var theme = localStorage.getItem('mdbook-theme');
                var sidebar = localStorage.getItem('mdbook-sidebar');

                if (theme.startsWith('"') && theme.endsWith('"')) {
                    localStorage.setItem('mdbook-theme', theme.slice(1, theme.length - 1));
                }

                if (sidebar.startsWith('"') && sidebar.endsWith('"')) {
                    localStorage.setItem('mdbook-sidebar', sidebar.slice(1, sidebar.length - 1));
                }
            } catch (e) { }
        </script>

        <!-- Set the theme before any content is loaded, prevents flash -->
        <script type="text/javascript">
            var theme;
            try { theme = localStorage.getItem('mdbook-theme'); } catch(e) { }
            if (theme === null || theme === undefined) { theme = default_theme; }
            var html = document.querySelector('html');
            html.classList.remove('no-js')
            html.classList.remove('light')
            html.classList.add(theme);
            html.classList.add('js');
        </script>

        <!-- Hide / unhide sidebar before it is displayed -->
        <script type="text/javascript">
            var html = document.querySelector('html');
            var sidebar = 'hidden';
            if (document.body.clientWidth >= 1080) {
                try { sidebar = localStorage.getItem('mdbook-sidebar'); } catch(e) { }
                sidebar = sidebar || 'visible';
            }
            html.classList.remove('sidebar-visible');
            html.classList.add("sidebar-" + sidebar);
        </script>

        <nav id="sidebar" class="sidebar" aria-label="Table of contents">
            <div class="sidebar-scrollbox">
                <ol class="chapter"><li class="chapter-item expanded "><a href="../index.html"><strong aria-hidden="true">1.</strong> 快速开始</a></li><li class="chapter-item expanded "><a href="../quick/struct.html"><strong aria-hidden="true">2.</strong> 项目结构</a></li><li class="chapter-item expanded "><a href="../quick/command.html"><strong aria-hidden="true">3.</strong> SDK命令指引</a></li><li class="chapter-item expanded "><a href="../quick/update.html" class="active"><strong aria-hidden="true">4.</strong> 更新日志</a></li><li class="chapter-item expanded "><div><strong aria-hidden="true">5.</strong> 功能库</div></li><li><ol class="section"><li class="chapter-item expanded "><a href="../lib/api.html"><strong aria-hidden="true">5.1.</strong> API</a></li><li class="chapter-item expanded "><a href="../lib/attr.html"><strong aria-hidden="true">5.2.</strong> 属性 Attr</a></li><li class="chapter-item expanded "><a href="../lib/japi.html"><strong aria-hidden="true">5.3.</strong> JAPI</a></li><li class="chapter-item expanded "><a href="../lib/hslk1.html"><strong aria-hidden="true">5.4.</strong> Slk入门</a></li><li class="chapter-item expanded "><a href="../lib/hslk2.html"><strong aria-hidden="true">5.5.</strong> Slk进阶</a></li><li class="chapter-item expanded "><a href="../lib/hslk_f6.html"><strong aria-hidden="true">5.6.</strong> Slk原生物编字段</a></li><li class="chapter-item expanded "><a href="../lib/hslk_misc.html"><strong aria-hidden="true">5.7.</strong> Slk与MISC数据</a></li><li class="chapter-item expanded "><a href="../lib/sync.html"><strong aria-hidden="true">5.8.</strong> Sync同步</a></li></ol></li><li class="chapter-item expanded "><div><strong aria-hidden="true">6.</strong> 例子</div></li><li><ol class="section"><li class="chapter-item expanded "><a href="../example/leaderBoard.html"><strong aria-hidden="true">6.1.</strong> 使用排行榜</a></li><li class="chapter-item expanded "><a href="../example/multiBoard.html"><strong aria-hidden="true">6.2.</strong> 使用多面板</a></li><li class="chapter-item expanded "><a href="../example/dialog.html"><strong aria-hidden="true">6.3.</strong> 难度选择对话框</a></li><li class="chapter-item expanded "><a href="../example/pickHero.html"><strong aria-hidden="true">6.4.</strong> 常见两种选英雄</a></li><li class="chapter-item expanded "><a href="../example/attack.html"><strong aria-hidden="true">6.5.</strong> 简单刷兵</a></li></ol></li><li class="chapter-item expanded "><div><strong aria-hidden="true">7.</strong> 其他学习</div></li><li><ol class="section"><li class="chapter-item expanded "><a href="../other/jetbrain.html"><strong aria-hidden="true">7.1.</strong> Jetbrain设置</a></li><li class="chapter-item expanded "><a href="../other/q_a.html"><strong aria-hidden="true">7.2.</strong> 询问的技巧</a></li><li class="chapter-item expanded "><a href="../other/dz.html"><strong aria-hidden="true">7.3.</strong> 平台上线须知</a></li><li class="chapter-item expanded "><a href="../other/war3_tec.html"><strong aria-hidden="true">7.4.</strong> 魔兽作图小技巧</a></li><li class="chapter-item expanded "><a href="../other/war3_terrainArt.html"><strong aria-hidden="true">7.5.</strong> 魔兽地形贴图路径</a></li><li class="chapter-item expanded "><a href="../other/lua_engine.html"><strong aria-hidden="true">7.6.</strong> YDLua引擎</a></li><li class="chapter-item expanded "><a href="../other/ui_fdf.html"><strong aria-hidden="true">7.7.</strong> UI &amp; FDF</a></li></ol></li><li class="chapter-item expanded "><div><strong aria-hidden="true">8.</strong> 小小专栏</div></li><li><ol class="section"><li class="chapter-item expanded "><a href="../xxqq/BV1nV411J7FB.html"><strong aria-hidden="true">8.1.</strong> 基础指令介绍</a></li><li class="chapter-item expanded "><a href="../xxqq/BV1TK4y1Z7eB.html"><strong aria-hidden="true">8.2.</strong> hslk高级用法演示1</a></li><li class="chapter-item expanded "><a href="../xxqq/BV1M64y117sB.html"><strong aria-hidden="true">8.3.</strong> hslk高级用法演示2</a></li><li class="chapter-item expanded "><a href="../xxqq/BV1ZV411J7JJ.html"><strong aria-hidden="true">8.4.</strong> hslk高级用法演示3</a></li><li class="chapter-item expanded "><a href="../xxqq/BV1iv411L7CP.html"><strong aria-hidden="true">8.5.</strong> UI之sync演示</a></li><li class="chapter-item expanded "><a href="../xxqq/BV1Hy4y1s7cj.html"><strong aria-hidden="true">8.6.</strong> 构建酒馆与小地图UI显示头像</a></li><li class="chapter-item expanded "><a href="../xxqq/BV1Lh411v7pR.html"><strong aria-hidden="true">8.7.</strong> 伤害排行榜</a></li><li class="chapter-item expanded "><a href="../xxqq/upscale.html"><strong aria-hidden="true">8.8.</strong> 高端演示</a></li></ol></li></ol>            </div>
            <div id="sidebar-resize-handle" class="sidebar-resize-handle"></div>
        </nav>

        <div id="page-wrapper" class="page-wrapper">

            <div class="page">
                
                <div id="menu-bar-hover-placeholder"></div>
                <div id="menu-bar" class="menu-bar sticky bordered">
                    <div class="left-buttons">
                        <button id="sidebar-toggle" class="icon-button" type="button" title="Toggle Table of Contents" aria-label="Toggle Table of Contents" aria-controls="sidebar">
                            <i class="fa fa-bars"></i>
                        </button>
                        <button id="theme-toggle" class="icon-button" type="button" title="Change theme" aria-label="Change theme" aria-haspopup="true" aria-expanded="false" aria-controls="theme-list">
                            <i class="fa fa-paint-brush"></i>
                        </button>
                        <ul id="theme-list" class="theme-popup" aria-label="Themes" role="menu">
                            <li role="none"><button role="menuitem" class="theme" id="light">Light (default)</button></li>
                            <li role="none"><button role="menuitem" class="theme" id="rust">Rust</button></li>
                            <li role="none"><button role="menuitem" class="theme" id="coal">Coal</button></li>
                            <li role="none"><button role="menuitem" class="theme" id="navy">Navy</button></li>
                            <li role="none"><button role="menuitem" class="theme" id="ayu">Ayu</button></li>
                        </ul>
                                                <button id="search-toggle" class="icon-button" type="button" title="Search. (Shortkey: s)" aria-label="Toggle Searchbar" aria-expanded="false" aria-keyshortcuts="S" aria-controls="searchbar">
                            <i class="fa fa-search"></i>
                        </button>
                                            </div>

                    <h1 class="menu-title"></h1>

                    <div class="right-buttons">
                                                <a href="../print.html" title="Print this book" aria-label="Print this book">
                            <i id="print-button" class="fa fa-print"></i>
                        </a>
                                                                        
                    </div>
                </div>

                                <div id="search-wrapper" class="hidden">
                    <form id="searchbar-outer" class="searchbar-outer">
                        <input type="search" id="searchbar" name="searchbar" placeholder="Search this book ..." aria-controls="searchresults-outer" aria-describedby="searchresults-header">
                    </form>
                    <div id="searchresults-outer" class="searchresults-outer hidden">
                        <div id="searchresults-header" class="searchresults-header"></div>
                        <ul id="searchresults">
                        </ul>
                    </div>
                </div>
                
                <!-- Apply ARIA attributes after the sidebar and the sidebar toggle button are added to the DOM -->
                <script type="text/javascript">
                    document.getElementById('sidebar-toggle').setAttribute('aria-expanded', sidebar === 'visible');
                    document.getElementById('sidebar').setAttribute('aria-hidden', sidebar !== 'visible');
                    Array.from(document.querySelectorAll('#sidebar a')).forEach(function(link) {
                        link.setAttribute('tabIndex', sidebar === 'visible' ? 0 : -1);
                    });
                </script>

                <div id="content" class="content">
                    <main>
                        <h2 id="更新日志"><a class="header" href="#更新日志">更新日志</a></h2>
<h4 id="项目当前由-xxqq9527-继续被动维护"><a class="header" href="#项目当前由-xxqq9527-继续被动维护">项目当前由 xxqq9527 继续被动维护</a></h4>
<blockquote>
<p>2021/07 ~ 现在</p>
</blockquote>
<ul>
<li>chore(*): 优化</li>
<li>fix(*): 修复</li>
</ul>
<blockquote>
<p>2021/06</p>
</blockquote>
<ul>
<li>feat(debug): 新增handle监听</li>
<li>feat(attr): 新增吸魔 xxqq9527</li>
<li>feat(ttg): 飘浮字优化 xxqq9527</li>
<li>fix(monitor): 修复恢复监听器在满值无效的bug xxqq9527</li>
<li>fix(event): 修复一些事件参数相关bug xxqq9527</li>
<li>fix(skill): 修复bomb特效无效的问题 xxqq9527</li>
</ul>
<blockquote>
<p>2021/05</p>
</blockquote>
<ul>
<li>fix(event): 修复hslk系列bugs</li>
<li>fix(unit): 修复瞬间移动单位面向角度参数缺失bug</li>
<li>fix(sync): 修复同步参数错位问题</li>
</ul>
<blockquote>
<p>2021/04</p>
</blockquote>
<ul>
<li>feat(attr): 硬直开启判断及监听优化</li>
<li>feat(sync): 加入同步</li>
<li>feat(attr): 三围属性关联删除，现在支持大部分属性的成长关联 attr</li>
<li>feat(table/hero/skill): 新增几个函数</li>
<li>feat(hero): 修正经验计算</li>
<li>feat(attr): 优化攻击间隔逻辑</li>
<li>feat(attr): 删除xtras里面一些没什么用的事件支持</li>
<li>feat(event): 玩家伤害数据记录修正</li>
<li>feat(timer): 计时器新增暂停/恢复方法</li>
<li>feat(sound): 新增调节bgm音量</li>
<li>feat(sound): voiceCreate方法新增参数is3D</li>
<li>feat(dzui): 删除一大批没什么必要的函数</li>
<li>feat(hslk): 全面支持英雄技能,新增i18n可自定义部分文本</li>
<li>feat(hslk): 新增hslk_item_fleeting函数，hslk_item增加_onItemGet、hslk_ability增加_onSkillStudy</li>
<li>feat(math): 两位置角度限制范围返回[0-360]</li>
<li>fix(sdk): 修复build无响应问题</li>
<li>fix(attr): 修改伤害数据的获取模式</li>
<li>fix(model): 暴击默认模型路径错误</li>
<li>fix(damage): 修正没有伤害也触发暴击特效的问题</li>
<li>fix(damage): 修复硬直恢复失衡</li>
<li>chore(*): 删除implant，不再主动支持war3mapMisc.txt</li>
<li>chore(hslk): 默认单位杜绝恢复</li>
<li>chore(hslk): 默认单位ID改为熊猫（无技能1倍缩放255颜色）</li>
</ul>
<blockquote>
<p>2021/03</p>
</blockquote>
<ul>
<li>优化 | V1版本进入维护修bugs阶段，V2版本后成为SDK项目的子库</li>
<li>feat(skill): damage嵌入原生伤害类型</li>
<li>feat(texttag): model型漂浮字</li>
<li>feat(ring): 调整ring的生效逻辑</li>
<li>feat(japi): 完备JAPI</li>
<li>fix(sdk): 修复_attr disabled无效果的问题</li>
<li>fix(monitor/unit): 修复魔法恢复无效的bug</li>
<li>chore(slk): 修正lua基准库的执行流程</li>
</ul>
<blockquote>
<p>2021/02</p>
</blockquote>
<ul>
<li>chore(sdk): new hslk</li>
<li>chore(sdk): new tools</li>
<li>致命 | onChat事件优化及重做</li>
<li>致命 | 镜头提升/下降指令改为-d，使用为-d +100[提升100距离]</li>
<li>致命 | 淡化runtime</li>
<li>功能 | 新模块cache、monitor</li>
<li>功能 | 总属性在使用set时支持自动变换为绿字</li>
<li>优化 | 重做并优化满金币自动换木头的逻辑</li>
</ul>
<blockquote>
<p>2021/01</p>
</blockquote>
<ul>
<li>致命 | 删除了实际无用的三个属性：冥想力meditative、幸运luck和救助力help</li>
<li>致命 | 删除player自带的黄金木头获取漂浮字，新增资源变动事件，交由作者自行编写</li>
<li>致命 | 删除unit自带的经验漂浮字，新增单位获得经验事件，交由作者自行编写</li>
<li>致命 | 参数high改为height</li>
<li>致命 | 新增黑色玩家颜色、敌人模块重做，现在配置更简单并且支持多势力</li>
<li>致命 | loop方法统一改名为forEach，并且回调都以(val, idx)的配置返回</li>
<li>致命 | includes、delete方法参数顺序改得与lua默认函数相似</li>
<li>致命 | 框架现在不处理护甲属性，全部交予原生处理</li>
<li>致命 | 新增总护甲属性defend（只读）,现在护甲分白绿:defend_white/defend_green</li>
<li>致命 | 修复了一些有可能造成异步的潜在bug</li>
<li>功能 | xtras支持负动态映射数值</li>
<li>功能 | leap现在支持横纵偏移</li>
<li>功能 | 新模块物品池</li>
<li>功能 | 新增属性：攻击范围attack_range，攻击间隔attack_space</li>
<li>优化 | 重做单位RGBA颜色</li>
<li>优化 | 现在attr返回的攻击间隔不再是初始间隔而是根据攻速变幻的每秒间隔数据</li>
<li>优化 | 调整了丢弃物品触发的时机，事实上物品事件基本已重做</li>
<li>优化 | 遮罩mark增加一个空判断</li>
<li>优化 | slkHelper物品的叠加数现在下限起码是使用次数</li>
<li>优化 | 修复整数属性在小数扣除时有可能多出额外属性的bug</li>
<li>优化 | 优化shadow物品的名称</li>
</ul>
<blockquote>
<p>2020/12</p>
</blockquote>
<ul>
<li>致命 | slk与hslk分离</li>
<li>致命 | 自然属性参数全部删除</li>
<li>致命 | 彻底删除了自带的镜头模式</li>
<li>功能 | 新增附魔、附魔反应；属性系统与附魔连通</li>
<li>功能 | 新增商店模块</li>
<li>功能 | 新增buff模块</li>
<li>优化 | 英雄不再根据主属性赋予攻击伤害类型</li>
</ul>
<blockquote>
<p>2020/11</p>
</blockquote>
<ul>
<li>致命 | slkHelper的自定义键值统一为：以下划线开头小写作key</li>
<li>致命 | 伤害系统大改：删除了伤害种类，新增伤害来源等</li>
<li>致命 | 属性系统的特效重做，新设xtras</li>
<li>功能 | 新增n2i系列函数，名称获得ID</li>
<li>功能 | 事件event与新的xtras连通</li>
<li>功能 | 新增新属性：总攻击、攻击间隔、力量、敏捷、智力、减伤（%）、自身暴击</li>
<li>优化 | 删除了&quot;被/造成无法回避的伤害&quot;事件</li>
</ul>
<blockquote>
<p>2020/10</p>
</blockquote>
<ul>
<li>致命 | 现在物品创建不再支持设定物品的栏目位置</li>
<li>致命 | 修复部分range没有改名为radius的问题</li>
<li>致命 | 修复attr对象类型添加时key获取错误的问题</li>
<li>优化 | 优化合成/拆分的执行效率</li>
<li>优化 | 光环目标判定新增enemy目标，与enemies同效果</li>
<li>优化 | slkHelper信使的自动技能改为局部参数</li>
</ul>
<blockquote>
<p>2020/09</p>
</blockquote>
<ul>
<li>致命 | 为辨明范围的距离，涉及的参数名或回调数据不再使用“range”改为“radius/diameter”半径或直径来处理</li>
<li>致命 | [hero]修复设置玩家英雄最大数无效的bug</li>
<li>致命 | 修复物品拆分bugs</li>
<li>致命 | ID_ARRAY参数改名</li>
<li>功能 | slkHelper信使技能拓展，新增四个框架信使行为事件:(闪烁,范围拾取,拆分,批量传送)</li>
<li>功能 | event新增移动捕捉的相关事件</li>
<li>功能 | 新增matcher</li>
<li>功能 | slkHelper[光环]技能的完善（相关bug可看项目历史）</li>
<li>功能 | is模块部分判断函数名改为更贴近原生j,新增sapper判断自爆工兵</li>
<li>优化 | 物品拆分等功能继续完善</li>
<li>优化 | 整合并优化物品/技能属性计算</li>
</ul>
<blockquote>
<p>2020/08</p>
</blockquote>
<ul>
<li>致命 | 修复设置魔法百分比却设置到生命值的bug</li>
<li>致命 | 删除了h-lua的变身技能</li>
<li>致命 | 修复event删除事件的bug</li>
<li>致命 | 修复event一个BJ误用错误，现在改回CJ</li>
<li>致命 | 修复event[Esc]事件错误</li>
<li>致命 | 修复生命魔法的恢复器有可能出错的问题</li>
<li>致命 | 修复print_mbr部分打印没有正确显示中文的问题</li>
<li>致命 | 修复硬直已经补满了依然增加的bug</li>
<li>功能 | slkHelper现在支持一些简易的自定义设定，如文本颜色等</li>
<li>功能 | shadow物品（默认开启）</li>
<li>功能 | 物品合成、拆分（相关bug可看项目历史）</li>
<li>功能 | 强化物品使用事件，现在物品技能如有可能，可以获取释放的目标坐标/目标单位</li>
<li>优化 | runtime的精简和优化</li>
<li>优化 | hevent.POOL现在可以归nil</li>
<li>优化 | 英雄重生方法增加一个如果已经复活则跳过的逻辑</li>
<li>优化 | 修正超重提示的小数点溢出</li>
<li>优化 | 现在 print_r 会显示数值类型</li>
</ul>
<blockquote>
<p>2020/07</p>
</blockquote>
<ul>
<li>致命 | 修复onBeAttack的triggerUnit数据错误</li>
<li>功能 | 增加一个0秒无敌的致命抵抗，减少生命技能的性能负担</li>
<li>优化 | 删除Dzapi一行多余的代码</li>
</ul>
<blockquote>
<p>2020/06</p>
</blockquote>
<ul>
<li>致命 | 修复硬直不会自动补充的bug，修复被击硬直计算不实时的问题（顺便优化并修正了硬直的判断准则）</li>
<li>致命 | 修复hero.levelUp无效的bug</li>
<li>功能 | 增加his两个判断：背向对与正面对</li>
<li>功能 | 新增[可破坏物被破坏]事件</li>
<li>功能 | slkHelper新增[光环]技能</li>
<li>功能 | 新增matchUsed方法，使物品使用绑定更快更优雅</li>
<li>功能 | 新增[暂停]、[恢复]单位方法</li>
<li>优化 | leap和crashFly的地图边界问题</li>
<li>优化 | 优化slkHelper的item</li>
<li>优化 | hunit创建现在可以带一个attr设定，顺便设置属性</li>
</ul>
<blockquote>
<p>2020/05/31</p>
</blockquote>
<ul>
<li>功能 | 去掉了格式化里W（万）这个数值单位</li>
</ul>
<blockquote>
<p>2020/05/30</p>
</blockquote>
<ul>
<li>致命 | 修复一个runtime空值bug</li>
</ul>
<blockquote>
<p>2020/05/26</p>
</blockquote>
<ul>
<li>优化 | print_mb现在和print一样支持多个参数</li>
</ul>
<blockquote>
<p>2020/05/25</p>
</blockquote>
<ul>
<li>优化 | 单位的初始化，英雄的初始化以及判断的自动化</li>
</ul>
<blockquote>
<p>2020/05/19</p>
</blockquote>
<ul>
<li>功能 | hero模块构建酒馆内实现增强</li>
</ul>
<blockquote>
<p>2020/05/18</p>
</blockquote>
<ul>
<li>优化 | 重做了dzapi服务器清理server.clear</li>
</ul>
<blockquote>
<p>2020/05/17</p>
</blockquote>
<ul>
<li>致命 | slkhelper增加内置方法与hRuntime结合构建物编对象</li>
<li>优化 | 修改了math.numberFormat的单位</li>
</ul>
<blockquote>
<p>2020/05/14</p>
</blockquote>
<ul>
<li>优化 | F9提示优化，并增加all参数，一key全配置</li>
<li>优化 | table.merge方法支持动态参数(多table简单合并)</li>
</ul>
<blockquote>
<p>2020/05/09</p>
</blockquote>
<ul>
<li>致命 | 更多地框架内实现，group不再使用原生方法进行选取单位，可以选取到hunit.create的所有单位(如果原来就使用框架内create方法，几乎对现有功能无影响)</li>
</ul>
<blockquote>
<p>2020/05/08</p>
</blockquote>
<ul>
<li>致命 | event优化pool的处理，优化掉了框架拓展trigger的引用</li>
<li>优化 | 初始化合并,优化dzapi关闭时的提示，优化掉了框架拓展trigger的引用</li>
</ul>
<blockquote>
<p>2020/05/07</p>
</blockquote>
<ul>
<li>优化 | 新增item模块瞬逝物fleeting方法</li>
</ul>
<blockquote>
<p>2020/05/06</p>
</blockquote>
<ul>
<li>功能 | 新增多频对单位伤害技能 hskill.damageStep</li>
<li>优化 | 修改bgm的播放逻辑流程(改善了bgm的播放顺序效率)</li>
</ul>
<blockquote>
<p>2020/05/05</p>
</blockquote>
<ul>
<li>致命 | 修复quest离奇大小写导致任务全部是&quot;未发现&quot;的bug</li>
<li>致命 | 修复眩晕技能，计时器参数调用错误的bug(会导致多次眩晕直接报错)</li>
<li>功能 | sound模块删除了绑定点音效，新增绑定区域音效</li>
<li>功能 | 新增方法 his.inRect 判断是否在区域内</li>
<li>优化 | 删除了h-lua默认的F9任务（需要的可自行调用）</li>
</ul>
<blockquote>
<p>2020/05/04</p>
</blockquote>
<ul>
<li>致命 | 修复bgm停止后可能无法再次播放的bug</li>
</ul>
<blockquote>
<p>2020/05/01</p>
</blockquote>
<ul>
<li>致命 | 复活的方法从unit转到了hero模块</li>
</ul>
<blockquote>
<p>2020/04/30</p>
</blockquote>
<ul>
<li>致命 | 修复了一个神奇的heroPick事件调用错误</li>
<li>功能 | 新增三围主属性对白字攻击的影响</li>
<li>功能 | 现在遮罩自带一些贴图并支持RGB颜色</li>
<li>优化 | 修改了hero的底层判断方式（不影响his.hero的使用）</li>
</ul>
<blockquote>
<p>2020/04/29</p>
</blockquote>
<ul>
<li>致命 | 现在time模块不再支持原生计时器对象的获取时间了，全部改为框架自实现</li>
<li>致命 | 修复timer索引有误的bug（可能导致计时器无法删除）</li>
<li>致命 | 修复胜利失败不会自动结束游戏的问题</li>
<li>致命 | 修复物品事件无法注册的bug</li>
<li>优化 | 继续完善英雄选择</li>
</ul>
<blockquote>
<p>2020/04/26</p>
</blockquote>
<ul>
<li>优化 | 调整skill的damage，现在伤害动作可以没有伤害来源</li>
</ul>
<blockquote>
<p>2020/04/25</p>
</blockquote>
<ul>
<li>致命 | 修复is模块的时间判断bug，修复天气模块的一些bug</li>
<li>致命 | 删除mark模块（遮罩）归并到新增的texture模块</li>
<li>优化 | 修复了一些技能边界问题</li>
</ul>
<blockquote>
<p>2020/04/23 - 24</p>
</blockquote>
<ul>
<li>致命 | message模块删除，echo方法现在是全局方法，同时合并实现echo00等方法</li>
<li>优化 | hero模块重构</li>
<li>优化 | env模块重构（迷雾方法现在归属在env模块）</li>
</ul>
<blockquote>
<p>2020/04/22</p>
</blockquote>
<ul>
<li>优化 | 更优质的事件顺序编排</li>
</ul>
<blockquote>
<p>2020/04/20</p>
</blockquote>
<ul>
<li>致命 | 不再内置BJ文件，如需使用，自行补充和引用</li>
</ul>
<blockquote>
<p>2020/04/15 - 20</p>
</blockquote>
<ul>
<li>致命 | 删除了event的onSummon（被召唤）事件</li>
<li>致命 | 修复击飞目标参数错误的bug</li>
<li>功能 | 新增被反伤事件</li>
<li>优化 | 删除了上下左右和选择单位对apm的影响</li>
<li>优化 | event充分利用pool，重构大部分的方法</li>
</ul>
<blockquote>
<p>2020/04/14</p>
</blockquote>
<ul>
<li>致命 | - 修复event区域进入离开参数错误的bug</li>
</ul>
<blockquote>
<p>2020/03/31</p>
</blockquote>
<ul>
<li>功能 | - 整合随机数</li>
</ul>
<blockquote>
<p>2020/03/30</p>
</blockquote>
<ul>
<li>致命 | - 修复一个物品拾取事件变量[pickup]命名丢失错误</li>
</ul>
<blockquote>
<p>2020/03/28</p>
</blockquote>
<ul>
<li>优化 | - 利用event注册池，动态注册事件动态分配，极大降低框架默认注册崩溃的可能性</li>
</ul>
<blockquote>
<p>2020/03/23</p>
</blockquote>
<ul>
<li>致命 | - 修复unit.del持续时间为0的注册单位变量无法释放的问题</li>
</ul>
<blockquote>
<p>2020/03/22</p>
</blockquote>
<ul>
<li>优化 | - 重实现整理DZapi</li>
</ul>
<blockquote>
<p>2020/03/16</p>
</blockquote>
<ul>
<li>功能 | - 增加一个商城作弊法</li>
<li>优化 | - strpos现在找不到返回false而不是-1</li>
</ul>
<blockquote>
<p>2020/03/06</p>
</blockquote>
<ul>
<li>功能 | - string新增一个strpos方法</li>
<li>优化 | - 优化isOwnItem,现在同时支持int和string类型的id</li>
</ul>
<blockquote>
<p>2020/02/29</p>
</blockquote>
<ul>
<li>优化 | - 整合区间距离计算</li>
</ul>
<blockquote>
<p>2020/02/24 ~ 27</p>
</blockquote>
<ul>
<li>优化 | - 计时器与窗口分离，去除计时器调用时的闭包泄漏</li>
<li>优化 | - 改变filter的使用，用来解决group的闭包泄漏</li>
<li>优化 | - 重做物品拾取方法，改成框架自实现，不再使用jass方法，用来解决引擎闭包泄漏</li>
</ul>
<blockquote>
<p>2020/02/22</p>
</blockquote>
<ul>
<li>致命 | - 弃用pairs</li>
</ul>
<blockquote>
<p>2020/02/19</p>
</blockquote>
<ul>
<li>优化 | - time模块新增一个池，用于计时器handle的复用，经测试计时器即使删除内存也不释放，此举解决了内存溢出的问题</li>
<li>功能 | - time模块delDialog方法删除，现在调用delTimer会自动删除对话框，而回调也不再提供dialog的handle</li>
</ul>
<blockquote>
<p>2020/02/18</p>
</blockquote>
<ul>
<li>功能 | - 现在debug文件里自带调试开启，并且进行了常规错误的捕获，更方便突发测试，自动调试在打包时会自动删除</li>
</ul>
<blockquote>
<p>2020/02/17</p>
</blockquote>
<ul>
<li>优化 | - texttag设置了一个limit值作用限制上限，解决lua调用jass函数无效却占用资源丢失跟踪无法释放内存的问题</li>
</ul>
<blockquote>
<p>2020/02/15</p>
</blockquote>
<ul>
<li>功能 | - 新增打包package工具用于上线,复制exampleini,双击package打包</li>
<li>优化 | - 统合group</li>
</ul>
<blockquote>
<p>2020/02/14</p>
</blockquote>
<ul>
<li>致命 | - 重构dzapi！现在有个plugin文件复制到触发开启dzapi</li>
<li>功能 | - 新增一个玩家离开游戏的事件</li>
</ul>
<blockquote>
<p>2020/02/13</p>
</blockquote>
<ul>
<li>功能 | - 新增is两个判断：单位是否已被删除,单位是否正在受伤</li>
</ul>
<blockquote>
<p>2020/02/12</p>
</blockquote>
<ul>
<li>致命 | - 优化加载步骤，不再需要构建初始化触发器执行作弊码指令</li>
<li>致命 | - 删除了区域注册的初始化过程，转移至hunit(以后不通过hunit来创建单位就不会被系统识别)</li>
<li>功能 | - hunit.create新增register,isOpenSolt参数，可以控制是否注册和注册物品栏</li>
<li>功能 | - 新增获取排行榜名次玩家的3个方法</li>
<li>功能 | - 新增玩家名称处理的2个方法</li>
</ul>
<blockquote>
<p>2020/02/10</p>
</blockquote>
<ul>
<li>功能 | - player模块新增一个隐藏所有单位方法</li>
</ul>
<blockquote>
<p>2020/02/09</p>
</blockquote>
<ul>
<li>致命 | - 修复缴械对象获取错误的bug</li>
<li>致命 | - 修复is.get错误的bug</li>
</ul>
<blockquote>
<p>2020/02/08</p>
</blockquote>
<ul>
<li>致命 | - 修复了之前改动的眩晕以致有时无效的bug</li>
<li>功能 | - string 新增方法 vkey,attr调用此方法，提升set的效率大概20倍</li>
<li>优化 | - 反伤数值机制精度为0.01,小于0.01无效</li>
</ul>
<blockquote>
<p>2020/02/06</p>
</blockquote>
<ul>
<li>优化 | - 物品属性系统的完成及内存优化</li>
</ul>
<blockquote>
<p>2020/02/05</p>
</blockquote>
<ul>
<li>优化 | - 部分attr的slk方法转移至slk-helper</li>
</ul>
<blockquote>
<p>2020/02/04</p>
</blockquote>
<ul>
<li>致命 | - math删除了两个已经无用的函数 oddsItem coverAttrEffectVal</li>
<li>功能 | - 新增一个quest模块</li>
<li>功能 | - debug新增rem方法，用于检测执行时间</li>
<li>优化 | - 修复hluaF9事件错误的bug</li>
</ul>
<blockquote>
<p>2020/02/02</p>
</blockquote>
<ul>
<li>功能 | - 新增一个方法判断是否隐身</li>
<li>优化 | - 无敌的作用机制改为技能的Avul</li>
<li>优化 | - 删除了源的框架属性设定</li>
<li>优化 | - 优化SLK预读</li>
</ul>
<blockquote>
<p>2020/02/01</p>
</blockquote>
<ul>
<li>优化 | - 删除了全局注册这个事件</li>
<li>优化 | - 排行榜现在自动根据数值降序</li>
</ul>
<blockquote>
<p>2020/01/31</p>
</blockquote>
<ul>
<li>功能 | - item新增方法pick</li>
</ul>
<blockquote>
<p>2020/01/30</p>
</blockquote>
<ul>
<li>致命 | - 修复attr没有处理护甲和魔抗在伤害中比率的问题</li>
</ul>
<blockquote>
<p>2020/01/29</p>
</blockquote>
<ul>
<li>优化 | - runtime的gc</li>
<li>优化 | - 黄金木材资源的ratio生效机制更改，现只需要调用add方法会自动结合比率计算，如果add方法设定了单位，还会自动展示漂浮字</li>
<li>优化 | - 漂浮字的动画和呈现的效率</li>
</ul>
<blockquote>
<p>2020/01/27</p>
</blockquote>
<ul>
<li>致命 | - 修复attr-effect不能正确删除的bug</li>
<li>功能 | - 新增一个蝗虫的is判断</li>
<li>优化 | - 超过漂浮字上限的优化处理</li>
</ul>
<blockquote>
<p>2020/01/26</p>
</blockquote>
<ul>
<li>优化 | - 新增一个group方法loop，新增一个技能，矩形打击</li>
</ul>
<blockquote>
<p>2020/01/25</p>
</blockquote>
<ul>
<li>优化 | - 伤害增幅的key改为damage_extent</li>
</ul>
<blockquote>
<p>2020/01/24</p>
</blockquote>
<ul>
<li>鼠年快乐！</li>
</ul>
<blockquote>
<p>2020/01/23</p>
</blockquote>
<ul>
<li>致命 | - 修复了attr对于string数值处理不妥的bug</li>
<li>功能 | - 新增技能leapReflex</li>
</ul>
<blockquote>
<p>2020/01/22</p>
</blockquote>
<ul>
<li>致命 | - 修复小数缓存的微妙差值bug</li>
<li>功能 | - 新增属性：神/神抗</li>
<li>优化 | - 修复swim技能damageType获取错误对象的bug</li>
</ul>
<blockquote>
<p>2020/01/20</p>
</blockquote>
<ul>
<li>功能 | - 新增unit方法，设置单位的动画速度</li>
</ul>
<blockquote>
<p>2020/01/19</p>
</blockquote>
<ul>
<li>功能 | - 新增string方法：子串统计</li>
<li>功能 | - 反伤增加无敌判定(无敌不会被反伤)</li>
</ul>
<blockquote>
<p>2020/01/18</p>
</blockquote>
<ul>
<li>致命 | - 修复event的handle对象错误bug</li>
<li>功能 | - 新增一个string方法，用于重复字符串</li>
</ul>
<blockquote>
<p>2020/01/17</p>
</blockquote>
<ul>
<li>重构 | - 增加了一个常规伤害的设定</li>
<li>致命 | - 修复一部分属性小数精度丢失的bug</li>
<li>功能 | - 分裂、物理暴击、魔法暴击现在不属于常规属性，改为effect类型</li>
</ul>
<blockquote>
<p>2020/01/16</p>
</blockquote>
<ul>
<li>功能 | - 属性系统的伤害动作全部与skill的合并，现在只需要使用hskill.damage,而hattr.huntUnit则被删除</li>
</ul>
<blockquote>
<p>2020/01/15</p>
</blockquote>
<ul>
<li>功能 | - 新增leap拓展技能leapRange</li>
<li>功能 | - 新增技能：隐身/现形，优化hskill及hattr</li>
<li>功能 | - 修复effect一些关于更新迭代的bug</li>
</ul>
<blockquote>
<p>2020/01/14</p>
</blockquote>
<ul>
<li>致命 | - 修复start.lua错误判断蝗虫存在的bug</li>
<li>致命 | - 修复math的bug</li>
<li>功能 | - 无敌和群体无敌技能，增加一个可以设置特效的参数</li>
<li>功能 | - leap技能重做，修复math库的bug</li>
<li>功能 | - 新增leap拓展技能pow</li>
</ul>
<blockquote>
<p>2020/01/13</p>
</blockquote>
<ul>
<li>功能 | - 新增dzapi封装、unit方法</li>
<li>功能 | - 新增技能，剑刃风暴</li>
</ul>
<blockquote>
<p>2020/01/12</p>
</blockquote>
<ul>
<li>重构 | - damage函数的优化</li>
<li>致命 | - 修复眩晕技能持续时间过短时，无法准确删除buff的bug</li>
<li>功能 | - 新增玩家方法get/set称号</li>
<li>优化 | - 修复属性系统临时增加的物品栏没被删除的bug</li>
<li>优化 | - 增加一个魔爆特效</li>
<li>优化 | - 修复新版事件触发技能事件有可能获取数据错误的bug</li>
</ul>
<blockquote>
<p>2020/01/11</p>
</blockquote>
<ul>
<li>重构 | - hevent模块重做，影响获取回调数据的方式</li>
</ul>
<blockquote>
<p>2020/01/10</p>
</blockquote>
<ul>
<li>功能 | - 新增一个修改单位颜色的方法</li>
<li>优化 | - 排行榜的数据设定法修改(改成和多面板差不多)</li>
</ul>
<blockquote>
<p>2020/01/09</p>
</blockquote>
<ul>
<li>致命 | - 修复了闪电效果的无效偏移bug及技能闪电链的一些bug</li>
<li>功能 | - group新增获取最近单位方法，skill闪电链优化单位选取(最近的敌人)</li>
</ul>
<blockquote>
<p>2020/01/08</p>
</blockquote>
<ul>
<li>重构 | - hlogic模块直接删除，转为基本库的math</li>
<li>重构 | - mark模块重做，同时修复一些BJ问题</li>
<li>致命 | - 修复属性系统视野，绿字攻击，攻速，护甲的减除bug</li>
<li>致命 | - 修复slk攻速技能数值错误的问题</li>
<li>致命 | - 修复负护甲负魔抗失效的bug</li>
<li>优化 | - 调节多面板的图标占位</li>
<li>优化 | - 修复BJ、player bug</li>
</ul>
<blockquote>
<p>2020/01/07</p>
</blockquote>
<ul>
<li>功能 | - 新增table模块，而system被拆分为table和string，不复存在</li>
<li>功能 | - 新增string基本库，原来的idchar转换方法从system删除，内置于string</li>
<li>功能 | - 新增多面板，排行榜增加两个设定参数的方法,修复一个skill的bug</li>
<li>功能 | - group新增坐标法，优化原有的点、单位创建</li>
<li>功能 | - unit增加一个方法获取单位名字</li>
<li>功能 | - 增加了一个技能【范围眩晕】</li>
<li>优化 | - 修改effect、buff的特效作用顺序</li>
<li>优化 | - 优化单位、物品的id问题</li>
</ul>
<blockquote>
<p>2020/01/06</p>
</blockquote>
<ul>
<li>重构 | - skill大更新，部分技能改为options参数模式,眩晕等技能现在自动对抵抗作出反应</li>
<li>优化 | - 修复了新版table层次不正确的bug</li>
<li>优化 | - 属性系统的实现，MD5的调用</li>
<li>优化 | - 修正buff的删除</li>
</ul>
<blockquote>
<p>2020/01/05</p>
</blockquote>
<ul>
<li>重构 | - 属性系统大更新</li>
</ul>
<blockquote>
<p>2020/01/04</p>
</blockquote>
<ul>
<li>功能 | - 现在创建物品时如果是给予单位，可选物品的位置</li>
<li>优化 | - 修复了删除技能必须要设置during的不人性化问题</li>
</ul>
<blockquote>
<p>2020/01/03</p>
</blockquote>
<ul>
<li>致命 | - 修复了hattr力敏智的计算出错的bug</li>
<li>功能 | - 自然属性新增“虫”insect属性</li>
</ul>
<blockquote>
<p>2020/01/01</p>
</blockquote>
<ul>
<li>致命 | - 修复属性系统的特性bug</li>
<li>功能 | - 现在hevent的GetTriggerSkill返回的不再是handleID而是charID</li>
<li>功能 | - award模块与unit连通(主要是exp的改动)</li>
<li>优化 | - 修复buff/debuff无效的bug（key错误）</li>
<li>优化 | - 修复了一些unit模块的bug</li>
</ul>
<blockquote>
<p>2019/12/31</p>
</blockquote>
<ul>
<li>优化 | - 修复了hColor亮紫色颜色错误的bug</li>
</ul>
<blockquote>
<p>2019/12/30</p>
</blockquote>
<ul>
<li>优化 | - 修改item获取slk的部分方法,getAvatar改为getArt（获取图标）,getModel改为getFile（获取模型路径）</li>
</ul>
<blockquote>
<p>2019/12/29</p>
</blockquote>
<ul>
<li>优化 | - 修复一个关于玩家胜利失败的BJbug</li>
</ul>
<blockquote>
<p>2019/12/25</p>
</blockquote>
<ul>
<li>功能 | - dialog现在支持table的buttons，同时会自动识别设置的key指，可能的话作为热键</li>
<li>功能 | - 优化物品，修复自动物品不会触发使用事件的bug</li>
<li>功能 | - 优化system的错误提示</li>
<li>功能 | - 新增hhero方法：设置英雄当前等级</li>
</ul>
<blockquote>
<p>2019/12/24</p>
</blockquote>
<ul>
<li>功能 | - 优化一些拥有持续时间的函数，during可以不填</li>
<li>功能 | - 对话框现在支持关联table及序列table</li>
<li>优化 | - 修复玩家获取地图区域调用了BJ函数的问题</li>
</ul>
<blockquote>
<p>2019/12/23</p>
</blockquote>
<ul>
<li>功能 | - 增强debug(mb方法)</li>
<li>功能 | - his新增判断是否敌军、友军的方法</li>
</ul>
<blockquote>
<p>2019/12/22</p>
</blockquote>
<ul>
<li>功能 | - 新增物品的满格、超重事件、属性计算</li>
<li>优化 | - 修复runtime的参数重名bug，优化item和unit的slk数据获取</li>
</ul>
<blockquote>
<p>2019/12/21</p>
</blockquote>
<ul>
<li>功能 | - htime最重要的两个计时器方法的参数顺序变更，优化nil的编写</li>
<li>功能 | - 现在system的print_r归到debug里面去了</li>
<li>优化 | - 删除系统默认的空冷却slk</li>
</ul>
<blockquote>
<p>2019/12/20</p>
</blockquote>
<ul>
<li>功能 | - skills删除了0秒无敌（合并到无敌的方法去了）</li>
<li>功能 | - slk新增一棵树，修复镜头有几率出错的bug</li>
<li>功能 | - 新增一波技能的通用方法(添加、删除)</li>
<li>优化 | - 修复BJ函数错误</li>
</ul>
<blockquote>
<p>2019/12/18</p>
</blockquote>
<ul>
<li>功能 | - effect现在只支持&gt;=0（0为删除型特效调用法）</li>
<li>优化 | - 修复已知的bug</li>
</ul>
<blockquote>
<p>2019/12/16</p>
</blockquote>
<ul>
<li>功能 | - 现在onLevelUp事件支持获取提升了的等级差</li>
<li>优化 | - 修了很多bug（sound、event、hero、player等）</li>
</ul>
<blockquote>
<p>2019/12/15</p>
</blockquote>
<ul>
<li>功能 | - 加入leaderBoard（排行榜）功能</li>
<li>优化 | - 修复了is库使用了BJ函数导致的bug</li>
<li>优化 | - 修复技能、属性系统，飘浮字，事件一些bug，优化一些效果</li>
<li>优化 | - 调整默认的奖励范围，删除一些调试</li>
<li>优化 | - 修复玩家金钱木材设置无效的bug</li>
<li>优化 | - 修复runtime bug</li>
<li>优化 | - 同步unit库在其他库中的引用</li>
</ul>
<blockquote>
<p>2019/12/13</p>
</blockquote>
<ul>
<li>优化 | - 修复计时器一次性时窗口不显示的bug</li>
</ul>
<blockquote>
<p>2019/12/12</p>
</blockquote>
<ul>
<li>致命 | - 修复创建单位初始index不正确的bug</li>
<li>致命 | - 修复 timer bug</li>
<li>功能 | - 加入dialog（对话框），用更精简的方法优化msg</li>
<li>功能 | - 删除无用的技能空冷却，增加一个栈信息打印方便调试，优化代码中判断</li>
</ul>
<blockquote>
<p>2019/02/21 ~ 2019/10/11</p>
</blockquote>
<ul>
<li>功能 | - 功能补充</li>
</ul>
<blockquote>
<p>2019/02/21</p>
</blockquote>
<ul>
<li>start </li>
</ul>

                    </main>

                    <nav class="nav-wrapper" aria-label="Page navigation">
                        <!-- Mobile navigation buttons -->
                                                    <a rel="prev" href="../quick/command.html" class="mobile-nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
                                <i class="fa fa-angle-left"></i>
                            </a>
                        
                                                    <a rel="next" href="../lib/api.html" class="mobile-nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
                                <i class="fa fa-angle-right"></i>
                            </a>
                        
                        <div style="clear: both"></div>
                    </nav>
                </div>
            </div>

            <nav class="nav-wide-wrapper" aria-label="Page navigation">
                                    <a rel="prev" href="../quick/command.html" class="nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
                        <i class="fa fa-angle-left"></i>
                    </a>
                
                                    <a rel="next" href="../lib/api.html" class="nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
                        <i class="fa fa-angle-right"></i>
                    </a>
                            </nav>

        </div>

                <!-- Livereload script (if served using the cli tool) -->
        <script type="text/javascript">
            var socket = new WebSocket("ws://localhost:3000/__livereload");
            socket.onmessage = function (event) {
                if (event.data === "reload") {
                    socket.close();
                    location.reload();
                }
            };

            window.onbeforeunload = function() {
                socket.close();
            }
        </script>
        
        
        
                <script type="text/javascript">
            window.playground_copyable = true;
        </script>
        
        
                <script src="../elasticlunr.min.js" type="text/javascript" charset="utf-8"></script>
        <script src="../mark.min.js" type="text/javascript" charset="utf-8"></script>
        <script src="../searcher.js" type="text/javascript" charset="utf-8"></script>
        
        <script src="../clipboard.min.js" type="text/javascript" charset="utf-8"></script>
        <script src="../highlight.js" type="text/javascript" charset="utf-8"></script>
        <script src="../book.js" type="text/javascript" charset="utf-8"></script>

        <!-- Custom JS scripts -->
        
        
    </body>
</html>
